/**
 * 服务
 * 图片处理
 */
import config from "../config";
// keyof typeof config.images 提供非常好的类型提示
type mapKey = keyof typeof config.images
/**
 * 服务
 * 贴图图片
 */
export const image = new Map<mapKey, HTMLImageElement>()

// Object.entries() 返回给定对象自身可枚举属性的键值对数组
// 例如
// { foo: 'bar', baz: 42 }  => [ ['foo', 'bar'], ['baz', 42] ]
// 'foo'                    => [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
export const promises = Object.entries(config.images).map(([key, value]) => {
    // console.log(key,value)
    return new Promise((resolve) => {
        const img = document.createElement('img')
        img.src = value
        // //图片是异步加载，所以需要将图片加载完毕后，才进行渲染绘制
        img.onload = () => {
            image.set(key as mapKey, img)
            resolve(img)
        }
    })
})
